草庐IT

c++ - 合并两个 std::queue

全部标签

c - 套接字阻塞 :( How do i get out?

这是我从microsoft中获取的服务器代码.下面是我的main,它需要运行voidimportant_code(bool);。在linux和windows上使用管道和套接字时,我总是遇到这个问题。我如何退出select()我什么时候想退出我的应用程序?假设important_code总是在套接字代码之后的同一个线程上执行。我该怎么做?我知道这是windows代码,但我在linux下也遇到了这个问题额外的测试代码:如果您在我的主函数中注释掉main2()并取消注释循环,您可以使用ctrl+c干净地退出。使用套接字代码,阻塞select阻止我这样做。我该如何解决这个问题?#pragmac

c - 通过 fopen 创建文件在 Linux 上运行良好但在 Windows 上运行不正常(MS VS 2010)

您好,我正在尝试在MicrosoftVisualStudioUltimate2010中执行由以下代码生成的.exe文件,但我没有看到正在创建的文件。这段代码在使用GCC的Linux中编译和执行时工作得非常好。重复一遍,我可以使用在Linux中创建的文件!!但在Windows中,.exe程序无法为用户在命令提示符下输入的名称创建文件。有人可以让我知道我在编译器方面出了什么问题吗?真诚的感谢//filename.cpp:Definestheentrypointfortheconsoleapplication.#include"stdafx.h"//Pleasecommentifcodeis

c - 如何从 ml64.exe(MSVC 64 位 X64 汇编程序)访问线程本地存储?

以下C函数尝试使用线程局部存储变量以线程安全的方式防止多核代码中的递归。但是,由于有些复杂的原因,我需要在X64汇编程序(IntelX86/AMD64位)中编写此函数,并使用VC2010中的ml64.exe进行汇编。如果我使用全局变量,我知道如何执行此操作,但我不确定如何使用具有__declspec(thread)的TLS变量正确执行此操作。__declspec(thread)inttls_VAR=0;voidnorecurse(){if(0==tls_VAR){tls_VAR=1;DoWork();tls_VAR=0;}}注意:这是VC2010踢出来的功能。但是,MASM(ml64.

c++ - C/C++ Windows - ExtractIcon() 不检索所有可执行文件的图标

这只是我正在做的事情的片段:PROCESSENTRY32pe32;pe32.dwSize=sizeof(PROCESSENTRY32);hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);if(hProcessSnap==INVALID_HANDLE_VALUE)return;if(!Process32First(hProcessSnap,&pe32)){CloseHandle(hProcessSnap);//cleanthesnapshotobjectreturn;}do{hProcess=OpenProcess(P

c - 在 C 中,多线程,多个窗口调用一个窗口过程,每次调用都会使用新的局部变量还是我需要互斥体?

我试图在标题中解释这一切:我有一个多线程C程序,它将有多个窗口调用一个窗口过程。在窗口过程中完成了一些处理。我是否需要保护它,或者每次调用窗口过程都会在内存中分开?我的直觉是我不需要互斥锁,因为它们都是局部变量,这是错误的吗?LRESULTAPIENTRYEditSubclassProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam){if(uMsg==WM_GETDLGCODE)returnDLGC_WANTALLKEYS;elseif(uMsg==WM_CHAR){if((int)wParam==13){char*strCurrentCom

c - 解码文件

#include#includeconstintKEY=111;voidencryptStrA(char*sometext){intlength;length=strlen(sometext);for(inti=0;i我避开了一些棘手的事情文件以二进制模式打开在encryptStrA中,strlen函数没有直接放在循环条件中尽管如此,它仍然一直在输出“Hell”而不是“HelloWorld!”?更准确的说,是看到关键人物之后就全部砍掉。这是什么原因?我使用的操作系统中的每一行文本都以回车符(ASCII13)和换行符(10)结尾。 最佳答案

windows - DOS 批处理文件 - 显示带有两个选项的弹出消息

使用DOS批处理文件我想在XP和Windows7中显示一个弹出窗口,其中显示一条消息并让用户选择按两个按钮之一-一个将停止DOS批处理文件,而其他按钮将允许它继续。关于我可以使用什么dos批处理命令/pgm的任何提示? 最佳答案 以下WSH/VBscript片段提示用户单击是/否,之后您可以根据响应建立逻辑:'enterthistextintoask.vbsdiminputinput=MsgBox("Doyouwanttocontinue?",4)'wscript.echoinputIfinput=7Then'answerwasno

c - 如何使用句柄检索流程描述和公司名称?

如何使用句柄检索过程描述和公司名称。我正在使用WindowsAPI函数。 最佳答案 版本(和版权)信息存储在文件版本信息中。您可以使用GetFileVersionInfo获取它们功能。可以通过简单调用GetFileVersionInfo来检索版本以填充VS_FIXEDFILEINFO结构,但版权信息(在您的情况下为ProductName和CompanyName)存储在本地化/可本地化的文本字段中。例如看VerQueryValue功能。 关于c-如何使用句柄检索流程描述和公司名称?,我们在

c - 通过随机重命名覆盖 Windows 中的文件失败

我有一个文本文件,我想通过将其重写为临时文件然后覆盖原始文件来进行编辑。这段代码没有这样做,因为它被简化了,但它确实包含了我遇到的问题。在Windows上,当重命名函数失败时,EXAMPLE.TXT文件将在看似随机的运行次数后消失。我不知道为什么,但到目前为止它在Linux上运行良好。为什么会发生这种情况,我该如何从完全不同的方向解决它,例如在不重命名的情况下从程序中覆盖原始文件?此外,还有哪些其他更好的方法?此方法在Windows上还有其他缺陷,例如程序在调用remove之后但在重命名之前被用户关闭,这在Linux上不会有问题(在删除remove之后)?#include#includ

c# - 使用 NameValueCollection 类存储两个以上的值

我有一组字符串需要存储在一个集合中,比如:身份证、名字、姓氏、城市、国家、语言以上都适用于一个人(用ID表示)现在我有60到70个(并且还在增加),我该如何组织它们?我查看了NameValueCollection类-它完全符合我的要求(如果我只有两个字段),但由于我有6个字段,所以我无法使用它。例如:publicNameValueCollectionpersonCollection=newNameValueCollection{{"harry","townsend","london","UK","english"},{"john","cowen","liverpool","UK","e